通常情况数据库表与solr对应
- 但亿信智能知识库 表与solr结构不同 solr需要自动创建unique key id
how? 参考教程 参考教程2
1.配置文件schema.xml
- 用atom搜索工具(有相关配置就修改 没有就新增)
1 | <fieldType name="uuid" class="solr.UUIDField" indexed="true" /> |
2.配置文件solrconfig.xml(有相关配置就修改 没有就新增)
1 | <requestHandler name="/update" class="solr.UpdateRequestHandler"> |
遇到问题
1.root字段类型需要与id一致
- 解决方法:修改root firldType=”uuid”
1 | <field name="_root_" type="uuid" docValues="false" indexed="true" stored="false"/> |
2.Invalid UUID String: ‘10’
- Java 提交时报错
3. 报错 Document is missing mandatory uniqueKey field: id
- 把本地Question对象的id改成String类型(原来是int)
4.Error loading class ‘solr.JsonUpdateRequestHandler
- 改啦配置文件 忘啦怎么恢复 改之前先生成副本!!!!!!!!
总结之前失败经验 参考教程
- n篇教程都是修改两个配置文件 没一个成功的
- 大多报错Invalid UUID String: ‘10’
- 3.而且配置说的不详细 并没有 name=”/update”的ruquestHandle 只有name=”/update、elaxsc等”
- 4.而且root 的type要和id的一致也没说
1.修改scheme.xml
- 修改id字段 添加uuid字段类型 改变root字段类型
- 记住不能有相同字段就行
1 | <field name="id" type="uuid" indexed="true" stored="true" multiValued="false" /> |
2.修改solrconfig.xml
- 修改name含update的requestHander
- 增加updateRequestProcessorChain name=”uuid”
1 | <requestHandler name="/update" class="solr.UpdateRequestHandler"> |